With the success and widespread prevalence of the use of credit and debit cards for banking transactions, card issuers, such as banks and financial institutions, have turned to wireless smart devices as a means to provide their customers with a richer, more powerful set of features than is possible using a traditional magnetic stripe (“magstripe”) credit card.
As used herein, the term “smart device” refers to a device with processing capabilities. A smart device may have on-board memory, add-on memory or other storage capacity, may be written to as well as read from, and may contain one or more applications that perform a particular function or functions. Some smart devices may contain an operating system and/or user interface.
As used herein, the term “wireless smart device” refers to a smart device that can communicate via an electric and/or magnetic field between the device and some other entity, usually a wireless terminal or reader. For example, a proximity integrated circuit card (PICC) may communicate wirelessly with a proximity coupling device (PCD) to perform banking transactions similar to those performed by a traditional magstripe credit card.
One type of wireless communications that can be used between a wireless smart device and reader is near field communication (NFC). In one form of near field communication, a wireless smart device may communicate with a reader via inductive coupling of the reader antenna to the device antenna. The two loop antennas effectively form a transformer. The reader amplitude-modulates the RF field to send information to the device. The device communicates with the reader by modulating the loading on the device antenna, which also modulates the load on the reader antenna.
An example of near-field wireless communications standard commonly used by wireless smart devices is ISO 14443. The International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) 14443 specification (hereinafter referred to as the “ISO 14443”) defines a communications protocol for wireless smart devices operating at 13.56 MHz in close proximity with a reader antenna. ISO 14443 consists of four parts, hereinafter referred to as 14443-1, 14443-2, 14443-3, and 14443-4. ISO 14443-1 and 14443-2 define the physical characteristics of PICCs and the methods for wireless power and data transfer between PCDs and PICCS. ISO 14443-3 defines initialization and anti-collision protocols for PICCs and PCDs. ISO 14443-4 defines the high-level data transmission protocols used by PICCs and PCDs.
As used herein, the term “application” refers to a program, function, routine, applet, or similar entity that is hosted by (i.e., exists on and performs its operations on) a wireless smart device. An application may be implemented in hardware, software, firmware, or any combination thereof. One type of application that may exist on a wireless smart device is a contactless application based on MIFARE® specifications. MIFARE® is a standard that defines protocols and memory storage format for applications on wireless smart devices. MIFARE® is a leading industry standard for contactless smart card transactions, with a very large installed base worldwide. The MIFARE® standard can support a wide range of applications such as contactless payment, loyalty, public transportation, ticketing, coupon, access control, and gaming. Successful deployments of MIFARE® technology include the Oyster® card used in London, Touch 'n Go used in Malaysia, and the Breeze card used in Atlanta. However, these deployments are localized and are not interoperable with each other.
As used herein, the term “MIFARE® application” refers to an application that complies with MIFARE® specifications. The MIFARE® wireless smart card standard is a proprietary technology based on the ISO 14443 Type A specification. A first category of MIFARE® products includes MIFARE® Classic and MIFARE® UltraLight which support ISO 14443-1, 14443-2, and 14443-3, but replace ISO 14443-4 with MIFARE® proprietary protocol. Additionally, MIFARE® Classic products support a proprietary security protocol for authentication. A second category of MIFARE® products includes MIFARE® ProX and MIFARE® SmartMX wireless smart devices and readers that supports all four parts of ISO 14443 and can also support MIFARE® proprietary protocol. MIFARE® applications may include, for example, electronic coupons or customer loyalty cards.
FIG. 1 is a block diagram illustrating the organization of memory on one type of a conventional MIFARE® card, called a MIFARE® 1K card, so named because it includes 1K (i.e., 1,024 bytes) of MIFARE® memory. Other types of MIFARE® cards may include larger or smaller amounts of memory, depending on how the card will be used, i.e., its intended purpose. For example, a gift card that only stores the current balance of the gift amount may need less memory space than a customer loyalty card that stores a large amount of information about the customer, such as identification information, account numbers, shopping history, shopping preferences, and so on. In this example, the MIFARE® 1K memory is a 1,024-byte electrically erasable programmable read-only memory (EEPROM) memory 100, which is divided into 16 sectors. Each sector 102 contains 4 blocks, and each block 104 contains 16 bytes. The last block of each MIFARE® memory sector is called the sector trailer 106, and contains two secret keys, key A 108 and key B 110, as well as programmable access bits 112 that control access conditions for the sector. For example, access bits 112 may be set such that authentication with key A 108 is required before the sector can be read but authentication with key B 110 is required before the sector can be written. Key A 108 and key B 110 are referred to as “secret” keys because their contents are unreadable; if an application attempts to read a sector's sector trailer 106, the values of access bits 112 will be correctly returned, but the values of key A 108 (and key B 110, unless this field is used for data storage instead of key storage) will always return all zeros. This prevents malicious or accidental circumvention of the security mechanism, by keeping secret the value of the keys needed to access the sector. For example, a reader having only read access to a sector cannot use its “read” key to read sector trailer 106 and determine the “write” key.
Conceptually, a MIFARE® application may be thought of as an agreement between the reader and the card or device that is hosting the application as to the contents of the MIFARE® memory—i.e., an agreement about what data will be stored in which sectors, what kinds of operations the reader will be allowed to perform on each sector, and the keys that the reader will need to perform the allowed operations. For example, a MIFARE® application may use one sector to store information typically contained on a magstripe card, such as account number, expiration date, cardholder name, etc., and another sector to keep track of credits earned, bonus points accumulated, and so on. In another example, a sector may be used to store the current balance of a prepaid account, a gift card, or similar, in which case the application may deduct an amount from the balance as the account holder makes purchases. A MIFARE® application may use as few or as many sectors as it needs, limited only by the number of sectors available on the device. Using the memory illustrated in FIG. 1, a MIFARE® application may use from 1 to 16 sectors. Thus, the fundamental difference between one MIFARE® application and another MIFARE® application, for example, may lie merely in how each application uses the MIFARE® memory space.
MIFARE® memory is organized such that each sector has its own set of secret keys and access bits. Each sector's secret keys may be distinct from the secret keys used by other sectors, but this is not required. Each sector's access bits 112 can also be set independently of other sectors. The value of the access bits 112 determine the read/write characteristics of the sector and also determine which key is required for each operation. Since each sector has its own set of access bits, a MIFARE® application may maintain data with different access restrictions. For example, some sectors may be configured as read-only sectors, while other sectors may be configured as read-write sectors. Read-only sectors may be used to store static data, such as credit card number, coupon code, ticket number and/or account holder name, while read-write sectors may be used to store account balances for prepaid accounts or gift cards, or uses status for coupon, ticket and/or promotions, for example. Because access to MIFARE® memory sectors always requires the use of an access key, MIFARE® sectors may be thought of as never being unlocked. This characteristic of MIFARE® memory architecture is a principle obstacle to sharing MIFARE® memory among multiple MIFARE® applications.
Conventionally, there have been two different approaches to sharing memory between applications. The first is a territorial approach, which is to strike an agreement between the applications regarding which portions of memory will be “owned”—i.e., exclusively used—by each application. Using a MIFARE® example, application A may own sectors 0 through 3, application B may own sectors 4 through 9, application C may own sectors 10 and 11, and so on. However, the territorial approach is impractical for a number of reasons. First, some applications may conform to a standard which has severe constraints on memory space. For example, some MIFARE® products have extremely limited memory space (e.g., as little as 320 Bytes), so there may not be enough sectors to allocate out to the multiple applications and still allow each application to have enough memory space for its needs. Second, some applications may conform to a standard which does not contemplate or accommodate the concept of sharing memory space with other applications. For example, each MIFARE® application typically expects to have the entire MIFARE® memory space available to use as it pleases, and providers of MIFARE® applications are generally free to change the number, allocation, or selection of sectors used without notice. Sharing memory in a non-overlapping way would require that the application providers negotiate between themselves to allocate the use of specific sectors to one application or the other. Due to the limited memory space available on a typical MIFARE® card and the large number of possible combinations of applications that might be loaded together on a single MIFARE® device, this approach is impractical.
The second approach is a cooperative sharing approach in which the applications take turns using the entire memory and where by agreement among the application providers only one application at a time has use of that entire memory. In the cooperative sharing approach, all the applications either use the same secret keys or know each other's secret keys. However, this approach has serious drawbacks. For security reasons, having all applications use the same secret key or key set is undesirable, because if that one key or key set is compromised, all applications are at risk of misuse, abuse, or fraud. Having each application know the other applications' secret keys is also undesirable because application providers do not want to share their security keys with other application providers, and because a single malicious application may then harvest all of the secret keys available on the device, for potentially nefarious purposes. In short, the weakness of the cooperative sharing approach is that it works only if all applications cooperate nicely.
For this reason, although MIFARE® memory is organized so that it is theoretically possible to support multiple applications, actually supporting multiple MIFARE® applications using different security keys on the same card is so impractical as to be essentially impossible using conventional methods. The difficulties of supporting multiple applications using different security keys on the same wireless smart device apply generally to any application standard, including the MIFARE® standard, in which all or some portion of application memory may be reserved or locked by one application for its exclusive use, particularly if locking or reserving the memory involves the use of an application-specific secret key. As in the MIFARE® case, security concerns may render unacceptable the territorial and cooperative sharing approaches described above.
Accordingly, there exists a need for methods, systems, and computer program products for supporting multiple contactless applications using different security keys on the same wireless smart device.